Julian Sparber [Thu, 25 Jan 2024 20:11:50 +0000 (21:11 +0100)]
FdoNotifications: Only set the title of a Source once
Even though the comment in the code says that sources are reused even
thought the app title has changed this is actually not the case. Therefore
when ever the app title of a notification changes a new `Source` is
created. Therefore there is no point in setting the app title again.
Julian Sparber [Thu, 25 Jan 2024 16:54:09 +0000 (17:54 +0100)]
telepathyClient: Stop displaying presence in notification
The presence indicator in notification uses API only needed for the
telepathyClient, since it's a complete fringe feature nowadays it's not
worth maintaining specific API for it.
Suryashankar Das [Fri, 12 Mar 2021 19:49:10 +0000 (01:19 +0530)]
overview: Hide search results while leaving overview
There is currently no proper transition from search results
to the session: Only the top bar fades, but the rest of the
screen just changes abruptly at the end of the transition.
Fix this by hiding search results before leaving the overview,
so the regular transition can take place.
Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3821
Jonas Dreßler [Sat, 13 Feb 2021 15:16:20 +0000 (16:16 +0100)]
main: Only restore key focus on pop when modal actor is still focused
If something grabs the key focus while a modal is pushed, keeping
key-focus on that actor seems like the smarter thing to do than setting
it back to the last focus after the modal gets popped again. So check if
the key focus actor that we set when pushing the modal got changed when
popping that modal, and if it got changed, simply don't touch key focus.
This fixes a bug with the close dialog, where key focus isn't correctly
set to the dialog after alt-tabbing to a window showing a close dialog.
Carlos Garnacho [Mon, 29 Jan 2024 15:18:31 +0000 (16:18 +0100)]
st: Do not use markup in button labels
It sounds strange that buttons would admit Pango markup
in their label text. It sounds better to default to plain
text, and let users wanting markup to access the child
directly.
This also makes the first label being set consistent
with later text being assigned wrt markup usage, since
the non-markup ClutterText API is used if the child is
already present and of the expected type.
Florian Müllner [Mon, 29 Jan 2024 20:12:44 +0000 (21:12 +0100)]
windowManager: Keep dim effect in overview
Removing the effect dates back to the time when we didn't show
attached dialogs in the overview. Since we do show attached
dialogs as such nowadays, it makes sense to keep the effect.
Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6265
Florian Müllner [Wed, 17 Jan 2024 04:52:10 +0000 (05:52 +0100)]
docs: Expand contribution section in README
Provide a link to the relevant handbook section and some guidance
for submitting a successful merge request, instead of just throwing
two links at the user.
Florian Müllner [Wed, 17 Jan 2024 02:54:29 +0000 (03:54 +0100)]
docs: Add section on feature requests
Small and well-defined feature requests can be very useful, but
unfortunately too many are neither small nor well-defined.
Try to improve on that by adding another README section that
explains that changes need design approval, and points to
appropriate places to have broader design discussions,
hopefully without being too off-putting.
While this is unlikely to stop all "bad" feature requests, it
at least gives us something to point to when closing requests.
Florian Müllner [Wed, 17 Jan 2024 02:38:52 +0000 (03:38 +0100)]
docs: Elaborate on issue reporting
We currently just link to the issue tracker without providing
any further guidance.
Improve on that by pointing to the appropriate handbook chapter,
point out extensions as a possible source of issues, and direct
users towards discourse/matrix for support/discussions.
Florian Müllner [Tue, 16 Jan 2024 18:43:31 +0000 (19:43 +0100)]
docs: Elaborate on supported versions
The link to the GNOME schedule was added because of some confusion
of which versions are supported upstream. Briefly outline the
policy of "last two stable + current main", so that the information
can also be deduced from tags etc. without scrolling through the
schedule calendar.
While at it, update the link to the schedule to point to the
future release.gnome.org page.
Florian Müllner [Tue, 16 Jan 2024 00:54:56 +0000 (01:54 +0100)]
docs: Split commit message conventions from README
We currently only have a very brief outline of the commit message
conventions in the README.
Improve on that by splitting out the relevant section into a separate
file that outlines all conventions we use in addition to the general
guidelines in the [handbook].
Florian Müllner [Wed, 17 Jan 2024 09:36:10 +0000 (10:36 +0100)]
docs: Add debugging information
The current debugging page on the wiki is fairly outdated and
very X11-centric, so base the new page on the recently added
mutter documentation instead, but with a bigger focus on
Javascript debugging.
Florian Müllner [Tue, 16 Jan 2024 22:42:31 +0000 (23:42 +0100)]
docs: Document C coding style
We have a fair bit of C code, yet don't document the expected
coding style. This is not much of an issue for regular GNOME
contributors as we are following the conventions of the wider
project (glib, gtk, clutter, ...), but it's still better to
spell it out.
Do that by adapting the corresponding documentation from mutter.
Even if much of our C code doesn't match all the new guidelines,
it's good to consolidate the coding style between both projects.
Florian Müllner [Tue, 16 Jan 2024 19:03:03 +0000 (20:03 +0100)]
docs: Use dashes in filenames
Mutter's documentation was extended recently, with files using a
pattern of `some-stuff.md`. There is no strong argument for using
camel case, so switch to the same pattern as mutter to remove some
unnecessary friction for people who contribute to both projects.
Florian Müllner [Thu, 25 Jan 2024 23:56:35 +0000 (00:56 +0100)]
ci: Check snippets in coding style
To avoid having the coding style get out of sync with the actual
coding style in the future, run eslint on the individual snippets
when either the guide or the linter config change.
Florian Müllner [Thu, 25 Jan 2024 22:15:42 +0000 (23:15 +0100)]
doc: Fix style errors in coding style
As we've adapted our coding style, the corresponding documentation
hasn't always caught up. Fix the errors that eslint would point
out if it checked the code snippets.
Florian Müllner [Tue, 23 Jan 2024 22:40:04 +0000 (23:40 +0100)]
iconGrid: Don't recreate StIcons on icon theme changes
Now that StIcon updates its texture automatically on icon theme
changes, we only have to recreate icon actors that aren't StIcons.
(This probably only applies to the folder icon in the app grid
where the sub-icons do use St.Icon, but making that assumption
feels dodgy with an API as generic as `createIcon()`)
Florian Müllner [Tue, 23 Jan 2024 20:20:51 +0000 (21:20 +0100)]
st/icon: Automatically update on icon theme changes
St.Icon is very commonly used for displaying themed icons, yet so
far updating the icon on icon theme changes is left to the caller.
Unsurprisingly, very few actually do that, with the result that
for most icons, icon theme changes only take effect after a delay
(say, a color change on hover) or not at all.
This is also inconsistent with GTK, where Gtk.Image will automatically
pick up icon theme changes.
Address this by tracking whether the current icon corresponds to
a themed icon, and update it automatically on theme changes if
it does.
Sam Hewitt [Mon, 15 Jan 2024 16:59:26 +0000 (13:29 -0330)]
calendar: Stylesheet clean up & fixes
- added style class for when there are no world clocks present
- restructured the scss to match the widget structure
- cleaned up padding and font color styles
- improved high contrast support
Florian Müllner [Sun, 21 Jan 2024 17:50:54 +0000 (18:50 +0100)]
tests: Fix check for global scope pollution
Since commit c570011 dropped the `with` statement, this bit of
the test has only checked for writes to a specific variable
in the file.
There is no direct replacement for `with` here, the best we can
do (I think) is comparing property names on the global objects
before and after the `eval()` call.
Sam Hewitt [Mon, 15 Jan 2024 15:19:40 +0000 (11:49 -0330)]
dash: Resolve padding and alignment issues with dash items
- revert a change to y-expand on dash items
- clean up the manual padding on dash items in stylesheet
- fix an issue with the running dot being misaligned
Florian Müllner [Fri, 19 Jan 2024 12:35:53 +0000 (13:35 +0100)]
panel: Remove unnecessary code
Since commit a4660293748, the activities button uses the standard
`:checked` pseudo class in the overview instead of the custom
`:overview`.
As a side effect, the generic handling of the `CHECKED` Atk state
in StWidget now covers the case, and we no longer need to manage
the state explicitly.
Robert Mader [Thu, 18 Jan 2024 13:14:55 +0000 (14:14 +0100)]
tests/build: Silence meson deprecation warning
This produced the following warning:
```
DEPRECATION: Project uses feature that was always broken, and is now
deprecated since '1.3.0': str.format: Value other than strings,
integers, bools, options, dictionaries and lists thereof..
```
The resulting value of `SHELL_BACKGROUND_IMAGE` was indeed bogus, not
containing a proper file path.
Shmuel Melamud [Tue, 9 Jan 2024 02:51:31 +0000 (04:51 +0200)]
st/drawing-area: Merge ClutterCanvas to StDrawingArea
Since StDrawingArea is the only user of ClutterCanvas, it is possible
to move ClutterCanvas completely out of Mutter to gnome-shell. This
allows to remove another Cairo dependency from Mutter.
This patch merges ClutterCanvas code extracted from Mutter to
StDrawingArea.
Whether or not switches include shapes to indicate their ON/OFF
state is currently controlled by the stylesheet.
However there are use cases for both using the HighContrast style
without shapes, and for using shapes with the regular styesheet,
so follow the newly added "show-status-shapes" setting instead.
Florian Müllner [Wed, 10 Jan 2024 18:45:59 +0000 (19:45 +0100)]
popupMenu/switch: Use icons for state indicators
The indicators are currently part of the background image in the
high contrast theme. Using symbolic icons instead allows separating
the switch shapes from the high-contrast setting in the future.
Barnabás Pőcze [Tue, 16 Jan 2024 22:41:24 +0000 (23:41 +0100)]
status/backlight: Do only one dbus call per local change
The values of the two control widgets are syncronized, meaning
that both emit signals when the local value changes, regardless
which one is visible and is actually used by the user.
This is not ideal because it leads to two dbus calls
per local change. To alleviate this, only consider
changes from the widget that is visible.
The logic could enter an infinite loop because it tried to
propagate local changes to g-s-d that were caused by signals sent
by g-s-d. For example:
1. slider is set to 50
2. Set(50) dbus call is sent
3. slider is set to 51
4. Set(51) dbus call is sent
5. PropertiesChanged arrives due to Set(50)
6. this._sliderItem.value is set to 50
7. notify::value is emitted from this._sliderItem
8. Set(50) dbus call is sent
9. PropertiesChanged arrives due to Set(51)
10. this._sliderItem.value is set to 51
11. notify::value is emitted from this._sliderItem
12. Set(51) dbus call is sent
To alleviate this issue, block signal handlers when the local state is
changed due to a remote event.
Sam Hewitt [Mon, 15 Jan 2024 14:09:42 +0000 (10:39 -0330)]
style: Add lockscreen style to entry drawing mixin
- include style condition to entry drawing mixin to accommodate transparent bg on lockscreen
- see https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6802 and https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3109#note_1970652
Florian Müllner [Mon, 15 Jan 2024 13:39:59 +0000 (14:39 +0100)]
closeDialog: Close existing dialogs on shutdown
Otherwise mutter will request to hide the dialog when the meta
context is destroyed, but at the JS context has already shut down,
resulting in a crash.
Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7328
It can be fairly tedious to enter a toolbox and invoke `meson test`
with the right build directory, so add a companion script to the
existing meson-build.sh to handle that.
Florian Müllner [Fri, 12 Jan 2024 13:28:03 +0000 (14:28 +0100)]
tools/toolbox: Expose --wipe meson flag
It's useful when the existing build directory became invalid,
for instance after a meson update, and exposing it directly
from the wrapper script is more convenient than removing the
directory or entering the toolbox manually to invoke meson.
Florian Müllner [Fri, 12 Jan 2024 13:37:27 +0000 (14:37 +0100)]
tools/toolbox: Consistently abort on failure
Unlike the other scripts, meson-build currently doesn't set
the `-e` option. The script is mainly a wrapper around a single
toolbox call, but it means that any errors during option parsing
print a warning, but are otherwise ignored.
Florian Müllner [Thu, 11 Jan 2024 18:01:46 +0000 (19:01 +0100)]
tests: Add fittsy test
Both the dash and top bar items are expected to extend to the
screen edge, to make them easier click targets according to
Fitts' law.
This has the tendency to break fairly regularly, so add a small
test that checks the Fittsiness of the show-apps and activities
buttons to catch regressions.
Sam Hewitt [Thu, 11 Jan 2024 23:12:08 +0000 (19:42 -0330)]
style: Fix panel and dash to account for mouse travel
- rework overview-icon styles for the dash so they extend to the edge of the screen once again
- revert changes to panel_button mixin
- rework panel_button mixin to be more flexible
- fixes #7318
Florian Müllner [Thu, 11 Jan 2024 15:22:38 +0000 (16:22 +0100)]
notificationDaemon: Stop special-casing Empathy
Our telepathy component has been optional for years, and it is
disabled by default on major distros, so we cannot assume that
it handles any particular notifications.
Plus Empathy itself is mostly dead, so it's unlikely to be used
much anymore anyway.
Sam Hewitt [Thu, 11 Jan 2024 01:51:11 +0000 (22:21 -0330)]
style: Refactor the button and entry drawing css
- use a single button mixin for all buttons with a saner 'style' parameter
- rework the entry mixins to be similar to the buttons'
- clear out all unused or deprecated mixins
- create some drawing functions for focus ring and high contrast inset
- replace instances of old mixins with the new
Now that xdg-desktop-portal-gnome implements the Access portal
interface, GNOME Shell doesn't have to be the portal backend for
that anymore.
The D-Bus implementation is still preserved, because internally,
xdg-desktop-portal-gnome may still proxy the Access call to GNOME
Shell when the parent window is not available. That's a private
exchange between xdg-desktop-portal-gnome and GNOME Shell though,
and doesn't require GNOME Shell to be a full portal backend.
See https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/merge_requests/140
Florian Müllner [Thu, 4 Jan 2024 13:39:45 +0000 (14:39 +0100)]
mountOperation: Close when drive gets disconnected
If the volume that corresponds to the mount operation has an
associated drive, we should withdraw any pending dialogs or
notifications when the drive gets physically disconnected,
as they've become obsolete.
Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7302
Sam Hewitt [Tue, 9 Jan 2024 18:36:59 +0000 (15:06 -0330)]
calendar: Stylesheet follow-ups and fixes
- drop extraneous calendar-day style_class on week headings
- fix wrong variable in insensitive button mixin
- add some missing focus styles to calendar month header
- fix the asset for today with-events in light theme
- adjust HighContrast visuals for other month days
- make pager buttons circular